
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<HTML>

<HEAD>
   <TITLE>dafopw_c</TITLE>
</HEAD>

<BODY style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<A name="TOP"></A>

<table style="text-align: left; margin-left: auto; margin-right: auto; width: 800px;"
 border="0" cellpadding="5" cellspacing="2">
  <tbody>
    <tr>
      <td style="background-color: rgb(153, 153, 153); vertical-align: middle; text-align: center;">
      <div align="right"> 
      <small><small><a href="index.html">Index Page</a></small></small>
      </div>
      <b>dafopw_c</b> </td>
    </tr>

    <tr>
      <td style="vertical-align: top;">

<small><div align="center">
<A HREF="index.html#A">A</A>&nbsp;
<A HREF="index.html#B">B</A>&nbsp;
<A HREF="index.html#C">C</A>&nbsp;
<A HREF="index.html#D">D</A>&nbsp;
<A HREF="index.html#E">E</A>&nbsp;
<A HREF="index.html#F">F</A>&nbsp;
<A HREF="index.html#G">G</A>&nbsp;
<A HREF="index.html#H">H</A>&nbsp;
<A HREF="index.html#I">I</A>&nbsp;
<A HREF="index.html#J">J</A>&nbsp;
<A HREF="index.html#K">K</A>&nbsp;
<A HREF="index.html#L">L</A>&nbsp;
<A HREF="index.html#M">M</A>&nbsp;
<A HREF="index.html#N">N</A>&nbsp;
<A HREF="index.html#O">O</A>&nbsp;
<A HREF="index.html#P">P</A>&nbsp;
<A HREF="index.html#Q">Q</A>&nbsp;
<A HREF="index.html#R">R</A>&nbsp;
<A HREF="index.html#S">S</A>&nbsp;
<A HREF="index.html#T">T</A>&nbsp;
<A HREF="index.html#U">U</A>&nbsp;
<A HREF="index.html#V">V</A>&nbsp;
<A HREF="index.html#W">W</A>&nbsp;
<A HREF="index.html#X">X</A>&nbsp;
</div></small>
       <br>
       <table style="text-align: left; width: 60%; margin-left: auto; margin-right: auto;"
       border="0" cellspacing="2" cellpadding="2">
        <tbody>
          <tr>
            <td style="width: 50%; text-align: center;">
            <small>
              <a href="#Procedure">Procedure<br></a>
              <a href="#Abstract">Abstract<br></a>
              <a href="#Required_Reading">Required_Reading<br></a>
              <a href="#Keywords">Keywords<br></a>
              <a href="#Brief_I/O">Brief_I/O<br></a>
              <a href="#Detailed_Input">Detailed_Input<br></a>

              </small>
              </td>
              <td style="vertical-align: top; width: 50%; text-align: center;">
              <small>               <a href="#Detailed_Output">Detailed_Output<br></a>
              <a href="#Parameters">Parameters<br></a>
              <a href="#Exceptions">Exceptions<br></a>
              <a href="#Files">Files<br></a>
              <a href="#Particulars">Particulars<br></a>
              <a href="#Examples">Examples<br></a>

              </small>
              </td>
              <td style="vertical-align: top; width: 50%; text-align: center;">
              <small>               <a href="#Restrictions">Restrictions<br></a>
              <a href="#Literature_References">Literature_References<br></a>
              <a href="#Author_and_Institution">Author_and_Institution<br></a>
              <a href="#Version">Version<br></a>
              <a href="#Index_Entries">Index_Entries<br></a>
             </small>
            </td>
          </tr>
        </tbody>
</table>

<h4><a name="Procedure">Procedure</a></h4>
<PRE>
   void dafopw_c ( ConstSpiceChar  * fname,
                   SpiceInt        * handle ) 

</PRE>
<h4><a name="Abstract">Abstract</a></h4>
<PRE>
 
   Open a DAF for subsequent write requests. 
 </PRE>
<h4><a name="Required_Reading">Required_Reading</a></h4>
<PRE>
 
   <a href="../req/daf.html">DAF</a> 
 </PRE>
<h4><a name="Keywords">Keywords</a></h4>
<PRE>
 
   DAF 
   FILES 
 

</PRE>
<h4><a name="Brief_I/O">Brief_I/O</a></h4>
<PRE>
 
   Variable  I/O  Description 
   --------  ---  -------------------------------------------------- 
   fname      I   Name of DAF to be opened. 
   handle     O   Handle assigned to DAF. 
 </PRE>
<h4><a name="Detailed_Input">Detailed_Input</a></h4>
<PRE>
 
   fname       is the name of a DAF to be opened with write 
               access. 
 </PRE>
<h4><a name="Detailed_Output">Detailed_Output</a></h4>
<PRE>
 
   handle      is the file handle associated with the file. This 
               handle is used to identify the file in subsequent 
               calls to other DAF routines. 
 </PRE>
<h4><a name="Parameters">Parameters</a></h4>
<PRE>
 
   None. 
 </PRE>
<h4><a name="Exceptions">Exceptions</a></h4>
<PRE>
 
   1) If the specified file has already been opened, either by 
      the DAF routines or by other code, an error is signaled by 
      routines in the call tree of this routine.  Note that this 
      response is not paralleled by <a href="dafopr_c.html">dafopr_c</a>, which allows you 
      to open a DAF for reading even if it is already open for 
      reading. 
 
   2) If the specified file cannot be opened without exceeding 
      the maximum number of files, the error SPICE(DAFFTFULL) 
      is signaled. 
 
   3) If the attempt to read the file's file record fails, the 
      error SPICE(FILEREADFAILED) will be signaled. 
 
   4) If the specified file is not a DAF file, an error is 
      signaled by routines in the call tree of this routine. 
 
   5) If no logical units are available, an error is 
      signaled by routines called by this routine. 
 
   6) If the file does not exist, the error SPICE(FILENOTFOUND) 
      is signaled by routines in the call tree of this routine. 
 
   7) If an I/O error occurs in the process of opening the file, 
      routines in the call tree of this routine signal an error. 
 
   8) If the file name is blank or otherwise inappropriate 
      routines in the call tree of this routine signal an error. 
 
   9) If the file was transferred improperly via FTP, routines 
      in the call tree of this routine signal an error. 
 
  10) If the file utilizes a non-native binary file format, an 
      error is signaled by routines in the call tree of this 
      routine. 

  11) The error SPICE(EMPTYSTRING) is signaled if the file namne
      string does not contain at least one character, since the
      string cannot be converted to a Fortran-style string
      in this case.
      
  12) The error SPICE(NULLPOINTER) is signaled if the input file
      name string pointer is null.
 </PRE>
<h4><a name="Files">Files</a></h4>
<PRE>
 
   See argument `fname'. 
 </PRE>
<h4><a name="Particulars">Particulars</a></h4>
<PRE>
 
   Most DAFs require only read access. If you do not need to 
   change the contents of a file, you should open it with <a href="dafopr_c.html">dafopr_c</a>. 
   Use <b>dafopw_c</b> when you need to 
 
      -- change (update) one or more summaries, names, or 
         arrays within a file; or 
 
      -- add new arrays to a file. 
 </PRE>
<h4><a name="Examples">Examples</a></h4>
<PRE>
 
   In the following code fragment, <b>dafopw_c</b> is used to open a 
   file, which is then searched for arrays containing data for 
   a particular object. The code for the object is then changed 
   (perhaps to reflect some new convention). 
  
      #include &quot;SpiceUsr.h&quot;
      #include &quot;SpiceZfc.h&quot;

      int main()
      {
         void <b>dafopw_c</b> ( ConstSpiceChar  * fname,
                         SpiceInt        * handle );

         #define  DSCSIZ         5 
         #define  FILSIZ         256 
         #define  LINSIZ         81
         #define  ND             2
         #define  NI             6

         SpiceBoolean            found;

         SpiceChar               fname      [ FILSIZ ];
         SpiceChar               line       [ LINSIZ ];

         SpiceDouble             dc         [ ND ];
         SpiceDouble             sum        [ DSCSIZ ];

         SpiceInt                handle;
         SpiceInt                ic         [ NI ];
         SpiceInt                nd         = ND;
         SpiceInt                new_code;
         SpiceInt                ni         = NI;
         SpiceInt                old_code;


         /.
         Get the file name. 
         ./
         <a href="prompt_c.html">prompt_c</a> ( &quot;Enter name of existing DAF &gt; &quot;, FILSIZ, fname );

         <a href="prompt_c.html">prompt_c</a> ( &quot;Enter ID code to change    &gt; &quot;, LINSIZ, line  );
         <a href="prsint_c.html">prsint_c</a> ( line, &amp;old_code );

         <a href="prompt_c.html">prompt_c</a> ( &quot;Enter replacement code     &gt; &quot;, LINSIZ, line  );
         <a href="prsint_c.html">prsint_c</a> ( line, &amp;new_code );

         /.
         Open the existing DAF file for write access.
         ./
         <b>dafopw_c</b> ( fname, &amp;handle );

         /.
         Start a forward search through the file.
         ./
         <a href="dafbfs_c.html">dafbfs_c</a> ( handle );

         /.
         Find the first array (segment).
         ./
         <a href="daffna_c.html">daffna_c</a> ( &amp;found );

         while ( found ) 
         {
            /.
            Read and unpack the current DAF array summary
            (aka segment descriptor) sum:
            ./
            <a href="dafgs_c.html">dafgs_c</a> ( sum );
            <a href="dafus_c.html">dafus_c</a> ( sum, nd, ni, dc, ic ); 


            if ( ic[0] == old_code ) 
            {
               ic[0] = new_code;

               /.
               Pack the summary array using the updated
               integer array ic.  Note this is an f2c'd
               routine, so the array sizes are passed by
               reference.
               ./
               dafps_ ( &amp;nd, &amp;ni, dc, ic, sum );

               /.
               Replace the segment descriptor in the DAF.
               ./
               dafrs_ ( sum );
            }

            /.
            Find the next segment.
            ./
            <a href="daffna_c.html">daffna_c</a> ( &amp;found );
         }

         /.
         Close the DAF.
         ./
         <a href="dafcls_c.html">dafcls_c</a> ( handle );

         return ( 0 );
      }
</PRE>
<h4><a name="Restrictions">Restrictions</a></h4>
<PRE>
 
   1) Only files of the native binary file format may be opened 
      with this routine. 
 
   2) Files opened using this routine must be closed with <a href="dafcls_c.html">dafcls_c</a>. 
 </PRE>
<h4><a name="Literature_References">Literature_References</a></h4>
<PRE>
 
   NAIF Document 167.0, &quot;Double Precision Array Files (DAF) 
   Specification and User's Guide&quot; 
 </PRE>
<h4><a name="Author_and_Institution">Author_and_Institution</a></h4>
<PRE>
 
   N.J. Bachman    (JPL) 
   K.R. Gehringer  (JPL) 
   J.M. Lynch      (JPL) 
   J.E. McLean     (JPL) 
   W.L. Taber      (JPL) 
   F.S. Turner     (JPL) 
   I.M. Underwood  (JPL) 
 </PRE>
<h4><a name="Version">Version</a></h4>
<PRE>
 
   -CSPICE Version 1.0.0, 13-OCT-2004 (NJB) (KRG) (JML) (JEM) (WLT) (FST) (IMU)
</PRE>
<h4><a name="Index_Entries">Index_Entries</a></h4>
<PRE>
 
   open existing daf for write 
 </PRE>
<h4>Link to routine dafopw_c source file <a href='../../../src/cspice/dafopw_c.c'>dafopw_c.c</a> </h4>

      </td>
    </tr>
  </tbody>
</table>

   <pre>Wed Jun  9 13:05:20 2010</pre>

</body>
</html>

